import logging
import os
import time


def setup_logger():
    # 获取或创建一个名为 __name__ 的日志记录器对象
    logger = logging.getLogger(__name__)
    # 设置日志记录器对象的日志级别为 INFO
    logger.setLevel(level=logging.INFO)

    log_dir = "outlogs"  # 设置日志文件保存的目录名称
    os.makedirs(log_dir, exist_ok=True)  # 如果目录不存在，则创建目录
    current_time = time.time()  # 获取当前时间戳
    log_file_name = f"{log_dir}/{current_time}.log"  # 构建日志文件名
    handler = logging.FileHandler(log_file_name)  # 创建一个文件处理器，用于将日志记录到文件
    handler.setLevel(logging.INFO)  # 设置文件处理器的日志级别为 INFO
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')  # 创建日志格式
    handler.setFormatter(formatter)  # 将日志格式应用到文件处理器

    console = logging.StreamHandler()  # 创建一个流处理器，用于将日志输出到控制台
    console.setLevel(logging.INFO)  # 设置流处理器的日志级别为 INFO
    console.setFormatter(formatter)  # 将日志格式应用到流处理器

    logger.addHandler(handler)  # 将文件处理器添加到日志记录器对象
    logger.addHandler(console)  # 将流处理器添加到日志记录器对象

    return logger  # 返回配置好的日志记录器对象

